package com.ruoyi.riskrule.service;

import com.ruoyi.bizsys.domain.AppUser;
import com.ruoyi.bizsys.domain.LoanIou;
import com.ruoyi.bizsys.domain.LoanOrder;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Author: Jamnsinn
 * @Date: 2021/3/10 5:52 下午
 */
public interface ILoanFieldService {

    List<AppUser> getAppUserByDeviceInfo(String userId);

    //获取最近审批完成订单
    LoanOrder getApprovedRecentResult(String custNo);

    int selectContractsByStatus(String userId, Integer [] status, Date updateTime);

    /**
     * 根据流水号获取借据
     * @param loanNo
     * @return
     */
    LoanOrder getLoanOrderOne(String loanNo);

    LoanIou getLoanIouOne(String loanNo);

    Integer getCurrentOverdue(String custNo);

    Integer getMaximumOverdue(String custNo);


    /**
     * 当前提现申请距该客户最近一次提现申请的时间
     * @param
     * @return
     */
    Integer getLastTimeInterval(String custNo);

    //当前提现申请距该客户最近的在贷账单日的时间
    Integer getLastTimeIntervalOfIou(String custNo);

    List<LoanIou> getLoanIouByCustNo(String custNo,Date updateTime);

    /**
     *同设备指纹关联的客户当前逾期数
     * @param fingerprint
     * @return
     */
    int getFingerprintCustOverdueNum(String fingerprint);

    /**
     * 同新设备指纹关联的客户当前逾期数
     * @param newFingerprint
     * @return
     */
    int getNewFingerprintCustOverdueNum(String newFingerprint,String table,String deviceType);

    BigDecimal withholdingTotal(String custNo);

    int withholdingSettlementQuantity(String custNo);
    Map<String, Integer> getLoanOrderNums(String custNo);

}
